const express = require('express');
const router = express.Router();
const multer = require("multer");
const path = require("path");

// 随机函数 方便命名文件
function rand(min, max) {
    const dec = max - min;
    return parseInt(Math.random() * dec + min);
}

//作者:洪刚
// 创建存储对象
const storage = multer.diskStorage({ //文件名
    destination: path.join(__dirname, "../public/upload"), //配置文件存储的目标文件夹
    filename: function (req, file, cb) { //配置文件名
        const fname = Date.now() + "" + rand(1000000, 10000000) + path.extname(file.originalname).toLowerCase();
        cb(null, fname);
    }
});

// 作者：洪刚
//配置上传处理
const upload = multer({
    storage: storage,
    // 服务端如何限制文件类型
    fileFilter: function (req, file, cb) { //限制文件类型
        cb(null, true); //表示通过
    }
}).array("thumb");

// 作者：洪刚
// 请求方法
router.post("/", async (req, res) => {
    // 服务器如何响应错误
    upload(req, res, async function (err) { //文件类型不正确时不错误不出现到服务器
        if (err) {
            res.send({
                code: 401,
                message: "",
                data: []
            })
        } else {
            const data = req.files.map(item => "/upload/" + item.filename);
            res.send({
                code: 0,
                message: "",
                data: data
            })

        }
    });
})


router.put("/:id", async (req, res) => {
    upload(req, res, async function (err) { //文件类型不正确时不错误不出现到服务器
        if (err) {

        } else {
            await db.Article.updateOne({
                _id: db.ObjectId(req.params.id)
            }, req.body); //(要修改的对象)
            res.send(true);
        }
    })
})
module.exports = router;